Generating forms from user-defined information

ABSTRACT

A technique for generating a form is described. In the technique, a user provides information associated with a user-defined field, including a data type and/or semantic information for an entry associated with the user-defined field. Then, a computer system generates the form, which includes the user-defined field and additional fields based on the information associated with the user-defined field and the additional fields. This form includes a spatial reference pattern that, when printed on paper, facilitates data input using a writing instrument (such as a digital pen). Furthermore, generating the form may involve translating from a computer-input format of the form to a writing-instrument format based on specified layouts or sequential positions of the user-defined field and the additional fields. Next, the computer system provides the form to a user.

BACKGROUND

The present invention relates to a technique for generating a form, andin particular, for dynamically generating a paper form based onuser-defined data types and/or semantic information.

In spite of the proliferation of electronic forms, paper forms continueto be used by many companies. For example, many companies continue touse paper forms which are filled out by hand. However, converting suchhandwritten data from paper forms into an electronic format, which issuitable for subsequent processing, is typically difficult.

Digital pens have been proposed as a potential solution to this problem.Because digital pens dispense ink in the same way as existing pens, theycan be used to fill out paper forms. In addition, digital pens cancapture information about a user's pen strokes while filling out a formfor subsequent processing.

However, forms that are used with digital pens are often specific tocorresponding applications, and are typically developed on acase-by-case basis. In particular, a given one of these forms is usuallyproduced through a complicated design and implementation process inwhich considerable expertise is needed to combine the visual layout ofthe form with the semantic meaning of the data fields and the backenddatabase schema.

For example, a workflow may start with a visually designed form. Adesigner can manual crop out various regions in the form layout, andthen may define their semantic meanings and associated data types. Next,when information captured by a digital pen is received, customizedbusiness logic can be developed to process the received information.Furthermore, the database schema is typically carefully tuned to matchup with the processed results.

Such a workflow usually involves expert knowledge and a range ofspecific tools. This makes the entire application difficult to developand deploy. Furthermore, because of the significant time and costassociated with implementing any changes, the forms are usuallyquasi-static. This makes it difficult to generate forms for differentusers, or to adapt forms over time as a given user's needs evolve.

SUMMARY

One embodiment of the present invention provides a method for providinga form, which may be performed by a computer system. During operation,the computer system receives information associated with a user-definedfield, where the information includes a data type and/or semanticinformation for an entry associated with the user-defined field. Then,the computer system generates a form which includes the user-definedfield and additional fields based on the information associated with theuser-defined field and the additional fields. The form includes aspatial reference pattern that, when printed on paper, facilitates datainput using a writing instrument. Next, the computer system provides theform to a user.

For example, the form may be a for suitable for printing on paper, andproviding the form may include providing the form in a format that issuitable for printing.

In some embodiments, the computer system receives relative-locationinformation for the writing instrument with respect to the spatialreference pattern and field information, where the relative-locationinformation and the field information are determined when the writinginstrument is manipulated by the user while filling in a portion of theform. After receiving the relative-location information, the computersystem may extract writing information from the relative-locationinformation. For example, extracting the writing information mayinvolve: optical character recognition, shape recognition and/orhandwriting recognition.

Furthermore, the computer system may determine an entry for theuser-defined field and/or the additional fields based on the data typeor semantic information associated with the user-defined field and/orthe additional fields. Additionally, the computer system may verify thedetermined entry based on the data type and/or the semantic informationassociated with the user-defined field and the additional fields.

Note that the writing instrument may include a digital pen. Moreover,the spatial reference pattern may be embedded in the form as awatermark. Additionally, the information associated with theuser-defined field may specify a layout of the user-defined field and/ora sequential position of the user-defined field in the form.

In some embodiments, generating the form involves translating from acomputer-input format of the form to a writing-instrument format basedon specified layouts or sequential positions of the user-defined fieldand the additional fields. For example, generating the form may involvetranslating from a Hypertext Markup Language (HTML) format of the formto a visual layout of the form based on the specified layouts or thesequential positions of the user-defined field and the additionalfields. This visual layout may include presenting fields with multipleassociated choices with pen-compatible input areas, for example, byincluding proximate checkable boxes.

Furthermore, in some embodiments the form is associated with financialsoftware, which has predefined entries for fields other than theuser-defined field and the additional fields.

Another embodiment includes the computer system.

Another embodiment includes a computer-program product for use with thecomputer system. This computer-program product includes instructions forat least some of the operations in the method.

BRIEF DESCRIPTION OF THE FIGURES

FIG. 1 is a block diagram illustrating a form in accordance with anembodiment of the present invention.

FIG. 2 is a flow chart illustrating a method for providing the form ofFIG. 1 in accordance with an embodiment of the present invention.

FIG. 3 is a block diagram illustrating a networked computer system thatprovides the form of FIG. 1 in accordance with an embodiment of thepresent invention.

FIG. 4 illustrates the use of a digital pen to fill in a form inaccordance with an embodiment of the present invention.

FIG. 5 is a block diagram illustrating the digital pen of FIG. 4 inaccordance with an embodiment of the present invention.

FIG. 6 is a block diagram illustrating paper that includes a spatialreference pattern in accordance with an embodiment of the presentinvention.

FIG. 7 is a block diagram illustrating a computer system that performsthe method of FIG. 2 in accordance with an embodiment of the presentinvention.

FIG. 8 is a block diagram illustrating a data structure for use in thecomputer system of FIGS. 3 and 7 in accordance with an embodiment of thepresent invention.

Note that like reference numerals refer to corresponding partsthroughout the drawings. Moreover, multiple instances of the same partare designated by a common prefix separated from an instance number by adash.

DETAILED DESCRIPTION

The following description is presented to enable any person skilled inthe art to make and use the invention, and is provided in the context ofa particular application and its requirements. Various modifications tothe disclosed embodiments will be readily apparent to those skilled inthe art, and the general principles defined herein may be applied toother embodiments and applications without departing from the spirit andscope of the present invention. Thus, the present invention is notintended to be limited to the embodiments shown, but is to be accordedthe widest scope consistent with the principles and features disclosedherein.

Embodiments of a computer system, a technique for providing a form, anda computer-program product (e.g., software) for use with the computersystem are described. In the technique, a user provides informationassociated with a user-defined field, including a data type and/orsemantic information for an entry associated with the user-definedfield. Then, the computer system generates the form, which includes theuser-defined field and additional fields based on the informationassociated with the user-defined field and the additional fields. Thisform includes a spatial reference pattern that, when printed on paper,facilitates data input using a writing instrument (such as a digitalpen). Furthermore, generating the form may involve translating from acomputer-input format of the form to a writing-instrument format basedon specified layouts or sequential positions of the user-defined fieldand the additional fields. Next, the computer system provides the formto a user. The user may printout the form and may fill in the fieldsusing the writing instrument. These entries may be extracted and inputinto software, thereby providing an end-to-end process.

This technique facilitates a fully automated data-to-data approach fordynamically generating the form. In particular, it may eliminate theneed for expert involvement in constructing and maintaining therelationships between printed forms, data from the writing instrument,and backend business logic and a database schema. As a consequence, itmay reduce the time and expense associated with generating forms.Furthermore, this technique may allow users to generate and/or modifyforms as needed.

We now describe embodiments of a form. FIG. 1 presents a block diagramillustrating a form 110. This form includes fields 112 that a user canfill in to provide entries. An entry for a given field, such as field112-5, is associated with a data type and/or semantic information. Forexample, the entry for field 112-5 may correspond to a 10-digit phonenumber. Moreover, the layout of form 110 is designed to make it easierfor the user to fill in the form, and to simplify subsequent recoveryand processing of the entries provided. (Thus, field 112-5 includes tenseparate boxes, which correspond to respective digits in a 10-digitphone number.)

The challenge in generating forms, such as form 110, and processing thedata provided using them, is in matching the corresponding databaseschema, metadata associated with the entries (such as data types and/orsemantic information), with the visual layout of the forms. Inparticular, in existing techniques generating a given form typicallyinvolves one or more experts manually defining what data will beprovided using the form, and manually defining what this data means in adatabase schema. This process may involve defining metadata that:identifies an instance of the form; specifies the form layout (such asthe fields and/or areas of interest); ties the areas of interest to adatabase schema for use in subsequent data extraction; and ties theextracted data to additional business logic. Furthermore, in existingtechniques forms and the associated backend processes are oftenengineered separately, which results in errors. Using such lock-stepprocesses, these problems often make developing and maintaining formsexpensive and time consuming.

In the discussion that follows, a generating technique that addressesthese problems is described. In this technique, form generation and dataprocessing are based on a common data model. This data model includesuser-defined information for entries associated with one or moredata-capture areas, such as one or more fields 112, as well asadditional information for entries associated with additional fields infields 112. Note that the user-defined information and the additionalinformation may include: data types, semantic information, specifiedlayouts, labels/prompts, help/descriptive text and/or sequentialpositions of fields 112. Therefore, the data model directly orindirectly provides the positions of fields 112 in form 110, and themetadata associated with the entries for fields 112.

Using the data model, the visual layout of form 110 can be generated,for example, by translating form 110 from a computer-input format to awriting-instrument format. Furthermore, the data model facilitatessubsequent processing of data provided using form 110, including dataextraction and analysis.

This generating technique may simplify form development and maintenance.Furthermore, it may eliminate the need for: a manual design process, theuse of experts, or the use of complicated design tools. As aconsequence, it may reduce the time and expense associated withgenerating forms, which may allow users to dynamically generate and/ormodify forms as needed.

Additionally, the generating technique may allow forms that arecompatible with writing instruments (such as digital pens) to begenerated. This may facilitate a computer-implemented data-to-data userexperience. For example, a user may provide at least a portion of thedata model. Then, the user may print out a form that includes a spatialreference pattern (such as a dot-pattern-enabled form). Next, the usermay fill in this form using a digital pen, which captures the user'sstrokes and gestures (which are henceforth referred to asrelative-location information). This relative-location information maybe provided to a computer system that extracts writing information usingthe data model, and then processes the extracted writing information(including error correction, warning and/or record insertion).Furthermore, the user can subsequently add a field to the data model ormodify the metadata associated with an entry for an existing field, andcan generate a revised form with ease.

Thus, the generating technique may enable data collection using the formand a digital pen without requiring costly customization (which mayexpand the use of digital pens and the associated forms). For example,because the generating technique works at the metadata level (via thedata model), it is generic and can be included in a variety of databaseand software applications as a ‘function’ (as opposed to an expensive,customized service in the existing techniques).

We now describe embodiments of a process for providing form 100. FIG. 2presents a flow chart illustrating a method 200 for providing a form,which may be performed by a computer system. During operation, thecomputer system receives information associated with a user-definedfield (210), including a data type and/or semantic information for anentry associated with the user-defined field. Then, the computer systemgenerates a form which includes the user-defined field and additionalfields based on the information associated with the user-defined fieldand the additional fields (212). This form includes a spatial referencepattern (such as a watermark) that, when printed on paper, facilitatesdata input using a writing instrument (such as a digital pen). Next, thecomputer system provides the form to a user (216).

In some embodiments, generating the form (216) optionally involvestranslating from a computer-input format of the form to awriting-instrument format based on specified layouts or sequentialpositions of the user-defined field and the additional fields (214)(which may be included in the information associated with theuser-defined field and/or the information associated with the additionalfields). For example, generating the form may involve translating from aHypertext Markup Language (HTML) format of the form to a visual layoutof the form based on specified layouts or sequential positions of theuser-defined field and the additional fields.

Furthermore, in some embodiments the computer system optionally receivesrelative-location information for the writing instrument with respect tothe spatial reference pattern and field information (218), where therelative-location information and the field information are determinedwhen the writing instrument is manipulated by the user while filling ina portion of the form. After receiving the relative-locationinformation, the computer system may optionally extract writinginformation from the relative-location information (220). For example,extracting the writing information may involve: optical characterrecognition, shape recognition and/or handwriting recognition.

In some embodiments, the computer system determines an entry for atleast one of the user-defined field and the additional fields based onthe data type or semantic information associated with at least one ofthe user-defined field and the additional fields. Additionally, thecomputer system may verify the determined entry based on the data typeor the semantic information associated with the user-defined field andthe additional fields.

In some embodiments of method 200, there are additional or feweroperations. Moreover, the order of the operations may be changed and/ortwo or more operations may be combined into a single operation.

In an exemplary embodiment, the generating technique uses a data-drivendesign/implementation. In particular, instead of starting with a visuallayout of a form (such as form 110 in FIG. 1), it starts with adata-model description. For example, a data model in a table inQuickBase™, from Intuit, Inc., of Mountain View, Calif., may be used).(However, note that the generating technique may be used with a widevariety of tools that allow users to develop a database and/or one ormore forms.) This data model may include data types, such as entriesfor: an address field, a city field, a country field, a ZIP-code field,a phone-number field, an email field, etc. Furthermore, there may besemantic information associated with the entry for a given field. Forexample, the phone-number field may be associated with a 10-digit phonenumber, the ZIP-code field may be associated with a 5- or 9-digit ZIPcode, the email address field may be associated with an email addressthat includes an ‘@,’ etc. Collectively, this information in the datamodel is sufficient to define a computer-input format for a form inwhich a user can manually input data, for example, using a web browser.

Additionally, the data model may include layout and/orsequential-position information for the fields, which may be used togenerate the visual layout of a writing-instrument format of the form.This additional information may be used to construct a visual layout ofa form that is suitable for digital-pen input, and to program a backendgenerator that processes data provided via this form. In particular, thecomputer-input format may be transformed to the writing-instrumentformat. This transformation may be performed at the metadata level. Forexample, a field designated as a phone-number field may be translatedinto ten boxes in the visual-form layout to facilitate subsequentextraction of writing information using techniques such as: handwritingrecognition, optical character recognition and/or shape recognition.Furthermore, a spatial reference pattern, such as a dot pattern, may beincluded in the generated visual layout to facilitate direct printing ofthe form. Additionally, the translation may be maintained for use insubsequent data processing after the writing information is extracted.

We now describe a computer system that may perform method 200. FIG. 3presents a block diagram illustrating a networked computer system 300.In this computer system, a user of computer 310 may provide metadataassociated with one or more entries or fields in a form, which isincluded in a table in a data model. This metadata may be provided usinga stand-alone application, such as financial software, or a portion ofanother application that is resident on and which executes on computer310. Alternatively and/or additionally, at least a portion of thefinancial software or the other application may be a softwareapplication tool (provided by server 314 via network 312) that isembedded in a web page (and which executes in a virtual environment of aweb browser). In an illustrative embodiment, the software-applicationtool is a software package written in: JavaScript™ (a trademark of SunMicrosystems, Inc.), e.g., the software-application tool includesprograms or procedures containing JavaScript instructions, ECMAScript(the specification for which is published by the European ComputerManufacturers Association International), VBScript™ (a trademark ofMicrosoft, Inc.) or any other client-side scripting language. In otherwords, the embedded software-application tool may include programs orprocedures containing: JavaScript, ECMAScript instructions, VBScriptinstructions, or instructions in another programming language suitablefor rendering by the web browser or another client application oncomputer 310.

Then, the financial software may generate and print out form 316 inresponse to a user command or instruction. For example, the user mayactivate an icon or an object in a user interface of the financialsoftware. Note that the form may include the user-defined fields as wellas additional fields (such as predefined fields and/or entriesassociated with the financial software).

Next, the user or another user manipulates writing instrument 318relative to form 316 (which includes a spatial reference pattern) tofill in at least a portion of form 316. For example, the spatialreference pattern may be printed on form 316 (such as in a so-called‘watermark’). Writing instrument 318 optically captures what is writtenon form 316. In general, the captured information may include: one ormore gestures, one or more drawings, and/or writing. This capturedinformation is included in the relative position (e.g., coordinates) ofwriting instrument 318 with respect to form 316 as a function of time(which is referred to as relative-location information).

Furthermore, writing instrument 318 provides the captured information tothe financial software on computer 310 and/or server 314. In someembodiments, writing instrument 318 transmits the capturedrelative-location information, for example, via a wireless link 320.Alternatively or additionally, the captured information is transmittedwhen writing instrument 318 is plugged in to or coupled to computer 310.

After receiving the relative-location information, the financialsoftware may extract writing information from the relative-locationinformation. In particular, the financial software, as well as hardwarein computer 310 and/or server 314, may interpret the relative-locationinformation. For example, this software may extract the writinginformation using: optical character recognition, shape recognitionand/or handwriting recognition. Furthermore, the extracted informationmay be input into the financial software (for example, via a database),thereby saving the time and effort associated with manual entry. Entryof this extracted information may be based on the metadata (such as thesemantic data) and that was provided by the user.

Note that the extracted writing information may be stored on computer310, server 314 and/or at one or more other locations in computer system300 (i.e., locally or remotely). Moreover, because this information maybe sensitive in nature, it may be encrypted. For example, storedinformation and/or information communicated via network 312 and/orwireless link 320 may be encrypted.

In exemplary embodiments, the financial software includes: Quicken™and/or TurboTax™ (from Intuit, Inc., of Mountain View, Calif.),Microsoft Money™ (from Microsoft Corporation, of Redmond, Wash.),SplashMoney™ (from SplashData, Inc., of Los Gatos, Calif.), Mvelopes™(from In2M, Inc., of Draper, Utah), and/or open-source applications suchas Gnucash™, PLCash™, Budget™ (from Snowmint Creative Solutions, LLC, ofSt. Paul, Minn.), and/or other planning software capable of processingfinancial information.

Moreover, the financial software may include software such as:QuickBooks™ (from Intuit, Inc., of Mountain View, Calif.), Peachtree™(from The Sage Group PLC, of Newcastle Upon Tyne, the United Kingdom),Peachtree Complete™ (from The Sage Group PLC, of Newcastle Upon Tyne,the United Kingdom), MYOB Business Essentials™ (from MYOB US, Inc., ofRockaway, N.J.), NetSuite Small Business Accounting™ (from NetSuite,Inc., of San Mateo, Calif.), Cougar Mountain™ (from Cougar MountainSoftware, of Boise, Id.), Microsoft Office Accounting™ (from MicrosoftCorporation, of Redmond, Wash.), Simply Accounting™ (from The Sage GroupPLC, of Newcastle Upon Tyne, the United Kingdom), CYMA IV Accounting™(from CYMA Systems, Inc., of Tempe, Ariz.), DacEasy™ (from Sage SoftwareSB, Inc., of Lawrenceville, Ga.), Microsoft Money™ (from MicrosoftCorporation, of Redmond, Wash.), and/or other payroll or accountingsoftware capable of processing payroll information.

While a wide variety of writing instruments may be used to fill in form316, in the discussion that follows a digital pen is used as anillustration. FIG. 4 presents a drawing 400 that illustrates the use ofa digital pen 412 to fill in form 316. While a user is writing, digitalpen 412 may capture writing or location information and/or referenceinformation (which is referred to collectively as relative-locationinformation). For example, the relative-location information may includea writing style of the individual, including: one or more strokes ofdigital pen 412, an angle 418 of digital pen 412 while the individual iswriting, and/or a contact pressure 416 of digital pen 412 while theindividual is writing. Moreover, digital pen 412 may capture contextinformation, such as one or more fields or locations (such as location414) on form 316. Note that, in conjunction with the data model, thecaptured relative-location information can therefore tie positioninformation with the form layout, which allows the writing informationto be extracted based on the visual layout. In addition, therelative-location information at various locations can be mapped back tothe fields in form 316.

As noted previously, in some embodiments form 316 includes a spatialreference pattern that includes at least a portion of the referenceinformation. For example, form 316 may be a piece of paper that has awatermark or background pattern (such as a pattern generated using microdots). This spatial reference pattern may include metadata for theindividual and/or form 316, which can be captured by digital pen 412while the individual is writing. For example, the metadata may includean identifier for the user of digital pen 412 and/or an identifier forform 316. In some embodiments, the spatial reference pattern is uniquelyassociated with form 316. For example, a given surface may include aspatial reference pattern with a corresponding identifier thatidentifies at least a portion of the metadata, which may be remotelystored in a data structure associated with one or more users (forexample, in memory in server 314 in FIG. 3). This stored metadata may beaccessed when the captured relative-location information from digitalpen 412 is processed.

In addition, the spatial reference pattern may include spatial markersthat can be used to determine the location or motion of digital pen 412relative to form 316 and/or one or more locations (such as location 414)on form 316. Using these spatial markers, digital pen 412 may capturethe relative-location information while a user is writing on form 316.This relative-location information may include one or more gestures orstrokes of digital pen 412. For example, a given stroke may include: astarting point on the surface, an end point on the surface and a timestamp.

At least a portion of the captured data, such as the relative-locationinformation, may be communicated from digital pen 412 approximately inreal time, i.e., as the user writes on form 316. For example, captureddata may be communicated to computer 310 and/or server 314 (FIG. 3) viaa wireless network (such as via wireless link 320 in FIG. 3).Alternatively or additionally, at least a portion of the captured datamay be temporarily stored, and may be subsequently communicated fromdigital pen 412, i.e., after the user has finished writing or after apredetermined time interval, to computer 310 (FIG. 3) and/or server 314(FIG. 3).

During subsequent processing, writing information may be determined fromthe relative-location information. In particular, using the one or morestrokes and the data model, an analysis technique (such as an opticalcharacter-recognition technique, shape-recognition technique and/orhandwriting-recognition technique) may be used to determine the writinginformation. In some embodiments, at least a portion of this extractionprocess is performed on digital pen 412. Alternatively or additionally,this extraction process may, at least in part, be performed on computer310 (FIG. 3) and/or server 314 (FIG. 3).

Because the writing information and/or the reference information may besensitive, in some embodiments such information may be encrypted. Forexample, a portion of the relative-location information and/or thereference information may be encrypted prior to communication fromdigital pen 412 to computer 310 (FIG. 3) and/or server 314 (FIG. 3).

FIG. 5 presents a block diagram illustrating digital pen 412. Thisdigital pen may include a dispensing mechanism 510, which may dispenseink when the digital pen is in contact with form 316 (FIGS. 3 and 4).Moreover, digital pen 412 may include an optical imaging mechanism 512(such as a charge coupled device or a CMOS imaging sensor) thatoptically captures the relative-location information associated with thelocation or motion of digital pen 412 relative to form 316 (FIGS. 3 and4) and/or the reference information in the spatial reference pattern. Insome embodiments, this captured relative-location information is stored,at least temporarily, in optional memory 522. Furthermore, digital pen412 may include pressure sensor 514 that detects when dispensingmechanism 510 is in contact with form 316 (FIGS. 3 and 4), and thenactivates imaging mechanism 512.

In some embodiments, digital pen 412 includes optional control logic 520which facilitates the functionality of digital pen 412. Digital pen 412may also include an optional transmitter 516 and an optional antenna 518to communicate the captured relative-location information to computer310 (FIG. 3) and/or server 314 (FIG. 3). Alternatively or additionally,digital pen 412 may include a connector, such as a Universal Serial Bus(USB) port, which allows digital pen 412 to be coupled to an electronicdevice (such as computer 310 in FIG. 3).

Note that, while the preceding embodiments have used optical capture ofthe relative-location information as an illustration, other techniquescan be used. For example, computer system 300 (FIG. 3) may include alocal positioning system which is used to determine therelative-location information of writing instrument 318 (FIG. 3) as theuser manipulates it relative to form 316 (FIGS. 3 and 4).

As discussed previously, in some embodiments form 316 (FIGS. 3 and 4) isa printed piece of paper. This is shown in FIG. 6, which presents ablock diagram illustrating paper 600 that includes a spatial referencepattern 612. For example, this spatial reference pattern may be printedor embossed on paper 600. Furthermore, spatial reference pattern 612 mayinclude spatial markers and/or reference information associated withpaper 600 or a user. Spatial reference pattern 612 may allow digital pen412 (FIGS. 4 and 5) to capture the relative-location information, whichin turn may be used by digital pen 412 (FIGS. 4 and 5), computer 310(FIG. 3) and/or server 314 (FIG. 3) to extract writing information 614.

In some embodiments, paper 600 includes one or more fields or locations,such as field 616, which are associated with particular entries.Moreover, these entries may be associated with data types and/orsemantic information via the data model.

We now further describe embodiments of the computer system. FIG. 7presents a block diagram illustrating a computer system 700 thatperforms method 200 (FIG. 2). Computer system 700 includes one or moreprocessors 710, a communication interface 712, a user interface 714, andone or more signal lines 722 coupling these components together. Notethat the one or more processing units 710 may support parallelprocessing and/or multi-threaded operation, the communication interface712 may have a persistent communication connection, and the one or moresignal lines 722 may constitute a communication bus. Moreover, the userinterface 714 may include: a display 716, a keyboard 718, and/or apointer 720, such as a mouse.

Memory 724 in computer system 700 may include volatile memory and/ornon-volatile memory. More specifically, memory 724 may include: ROM,RAM, EPROM, EEPROM, flash memory, one or more smart cards, one or moremagnetic disc storage devices, and/or one or more optical storagedevices. Memory 724 may store an operating system 726 that includesprocedures (or a set of instructions) for handling various basic systemservices for performing hardware-dependent tasks. Memory 724 may alsostore procedures (or a set of instructions) in a communication module728. These communication procedures may be used for communicating withone or more writing instruments, and/or other electronic devices (suchas computers and/or servers), including computers and/or servers thatare remotely located with respect to computer system 700.

Memory 724 may also include multiple program modules (or sets ofinstructions), including: generation module 730 (or a set ofinstructions), extraction module 732 (or a set of instructions), one ormore analysis modules 738 (or a set of instructions), verificationmodule 750 (or a set of instructions), and/or encryption module 752 (ora set of instructions). Note that one or more of these program modules(or sets of instructions) may constitute a computer-program mechanism.

Communication module 728 may receive one or more user-defined data types740 and/or semantic information 742 for one or more entries associatedwith corresponding fields in one or more forms 744. In addition,communication module 728 may receive locations and/or sequentialpositions of these fields in the one or more forms 744. Then, generatingmodule 730 may use this information to dynamically generate a given formin forms 744. In some embodiments, this involves translating the givenform from a computer-input format to a writing-instrument format.

Subsequently, communication module 728 may receive relative-locationinformation 746 that was captured while one or more users filled in oneor more of forms 744. Extraction module 732 may use one or more analysistechniques 738 (such as optical character recognition, shape recognitionand/or handwriting recognition), one or more data types 740 and/orsemantic information 742 to extract writing information 734 fromrelative-location information 746. For example, writing information 734may include writing information associated with digital pen A 736-1and/or digital pen B 736-2.

Furthermore, verification module 750 may use the one or more data types740 and/or semantic information 742 to perform error detection and/orcorrection on writing information 734, thereby providing validatedentries 748 associated with fields in one or more of forms 744.

In some embodiments, at least some of the information stored in memory724 and/or at least some of the information communicated usingcommunication module 728 is encrypted using encryption module 752.

Instructions in the various modules in the memory 724 may be implementedin: a high-level procedural language, an object-oriented programminglanguage, and/or in an assembly or machine language. Note that theprogramming language may be compiled or interpreted, e.g., configurableor configured, to be executed by the one or more processing units 710.

Although computer system 700 is illustrated as having a number ofdiscrete items, FIG. 7 is intended to be a functional description of thevarious features that may be present in computer system 700 rather thana structural schematic of the embodiments described herein. In practice,and as recognized by those of ordinary skill in the art, the functionsof computer system 700 may be distributed over a large number of serversor computers, with various groups of the servers or computers performingparticular subsets of the functions. In some embodiments, some or all ofthe functionality of computer system 700 may be implemented in one ormore application-specific integrated circuits (ASICs) and/or one or moredigital signal processors (DSPs). Computer systems 300 (FIG. 3) and 700may include one of a variety of devices capable of manipulatingcomputer-readable data or communicating such data between two or morecomputing systems over a network, including: a personal computer, alaptop computer, a mainframe computer, a portable electronic device(such as a cellular phone or PDA), a server, a client computer (in aclient-server architecture) or another device capable of manipulatingcomputer-readable data. Moreover, communication with computer systems300 (FIG. 3) and 700 may occur over a variety of networks, such as: awired network, a wireless network, an optical network, the Internet,World Wide Web or WWW, an intranet, LAN, WAN, MAN, or combination ofnetworks, or other technology enabling communication between electronicdevices or computing systems.

Form 110 (FIG. 1), computer system 300 (FIG. 3), digital pen 412 (FIGS.4 and 5), paper 600 (FIG. 6) and/or computer system 700 may includefewer components or additional components. For example, in someembodiments, paper 600 (FIG. 6) is regular paper, i.e., paper that doesnot include metadata and/or a reference pattern (such as spatialreference pattern 612 in FIG. 6). In these embodiments, therelative-location information may be determined using another technique,such as using a local positioning system. Moreover, two or morecomponents may be combined into a single component, and/or a position ofone or more components may be changed. In some embodiments, thefunctionality of computer systems 300 (FIG. 3) and 700 may beimplemented more in hardware and less in software, or less in hardwareand more in software, as is known in the art.

We now discuss data structures that may be used in computer systems 300(FIG. 3) and/or 700. FIG. 8 presents a block diagram illustrating a datastructure 800, such as a data model. This data structure may includeinformation for entries associated with one or more fields 810. Forexample, the information for the entry associated with field 810-1 mayinclude: one or more data types 812-1, semantic information 814-1, oneor more locations 816-1 on a form, and/or one or more sequentialpositions of field 810-1 in the form.

In some embodiments of data structure 800 there may be fewer oradditional components. Moreover, two or more components may be combinedinto a single component and/or a position of one or more components maybe changed.

The foregoing descriptions of embodiments of the present invention havebeen presented for purposes of illustration and description only. Theyare not intended to be exhaustive or to limit the present invention tothe forms disclosed. Accordingly, many modifications and variations willbe apparent to practitioners skilled in the art. Additionally, the abovedisclosure is not intended to limit the present invention. The scope ofthe present invention is defined by the appended claims.

What is claimed is:
 1. A computer-implemented method for providing aform, comprising: receiving information associated with a user-definedfield, wherein the information associated with the user-defined fieldincludes a data type or semantic information for an entry associatedwith the user-defined field, wherein the information corresponds tometadata associated with the user-defined field; dynamically generatinga writing instrument format of a form which includes the user-definedfield and additional fields based on the information associated with theuser-defined field, wherein the form includes a spatial referencepattern comprising the metadata associated with at least a user of awriting instrument wherein when the form is printed on paper, thespatial reference pattern facilitates data input by the user using thewriting instrument; providing the form to the user; receivingrelative-location information for the writing instrument with respect tothe spatial reference pattern and field information; extracting writinginformation from the relative-location information; and determining anentry for at least one of the user-defined field and the additionalfields based on the metadata associated with the user-defined field andthe additional fields, thereby eliminating the need to construct andmaintain at least a relationship between the writing instrument formatof the form and the data input by the user using the writing instrument.2. The method of claim 1, wherein the relative-location information andthe field information are determined when the writing instrument ismanipulated by a user while filling in a portion of the form.
 3. Themethod of claim 1, wherein extracting the writing information involvesoptical character recognition, shape recognition or handwritingrecognition.
 4. The method of claim 1, further comprising verifying thedetermined entry based on the data type or the semantic informationassociated with the user-defined field and the additional fields.
 5. Themethod of claim 1, wherein the writing instrument includes a digitalpen.
 6. The method of claim 1, wherein the information associated withthe user-defined field specifies a layout of the user-defined field or asequential position of the user-defined field in the form.
 7. The methodof claim 1, wherein generating the form involves translating from acomputer-input format of the form to a writing-instrument format of theform based on user-specified layouts or sequential positions of theuser-defined field and the additional fields.
 8. The method of claim 1,wherein generating the form involves translating from a Hypertext MarkupLanguage (HTML) format of the form to a visual layout of the form basedon specified layouts or sequential positions of the user-defined fieldand the additional fields.
 9. The method of claim 1, wherein the spatialreference pattern is embedded in the form as a watermark.
 10. The methodof claim 1, wherein the form is associated with financial software; andwherein the financial software has predefined entries for fields otherthan the user-defined field and the additional fields.
 11. Acomputer-program product for use in conjunction with a computer system,the computer-program product comprising a non-transitorycomputer-readable storage medium and a computer-program mechanismembedded therein for providing a form, the computer-program mechanismincluding: instructions for receiving information associated with auser-defined field, wherein the information associated with theuser-defined field includes a data type or semantic information for anentry associated with the user-defined field, wherein the informationcorresponds to metadata associated with the user-defined field;instructions for dynamically generating a writing instrument format of aform which includes the user-defined field and additional fields basedon the information associated with the user-defined field and theadditional fields, wherein the form includes a spatial reference patterncomprising the metadata associated with at least a user of a writinginstrument, wherein when the form is printed on paper, the spatialreference pattern facilitates data input by the user using the writinginstrument; and instructions for providing the form to the user;instructions for receiving relative-location information for the writinginstrument with respect to the spatial reference pattern and fieldinformation; instructions for extracting writing information from therelative-location information; and instructions for determining an entryfor at least one of the user-defined field and the additional fieldsbased on the metadata associated with the user-defined field and theadditional fields, thereby eliminating the need to construct andmaintain at least a relationship between the writing instrument formatof the form and the data input by the user using the writing instrument.12. The computer-program product of claim 11, wherein therelative-location information and the field information are determinedwhen the writing instrument is manipulated by a user while filling in aportion of the form.
 13. The computer-program product of claim 11,wherein extracting the writing information involves optical characterrecognition, shape recognition or handwriting recognition.
 14. Thecomputer-program product of claim 11, wherein the computer-programmechanism further includes instructions for verifying the determinedentry based on the data type or the semantic information associated withthe user-defined field and the additional fields.
 15. Thecomputer-program product of claim 11, wherein the writing instrumentincludes a digital pen.
 16. The computer-program product of claim 11,wherein the information associated with the user-defined field specifiesa layout of the user-defined field or a sequential position of theuser-defined field in the form.
 17. The computer-program product ofclaim 11, wherein generating the form involves translating from acomputer-input format of the form to a writing-instrument format of theform based on user-specified layouts or sequential positions of theuser-defined field and the additional fields.
 18. The computer-programproduct of claim 11, wherein generating the form involves translatingfrom a Hypertext Markup Language (HTML) format of the form to a visuallayout of the form based on specified layouts or sequential positions ofthe user-defined field and the additional fields.
 19. Thecomputer-program product of claim 11, wherein the spatial referencepattern is embedded in the form as a watermark.
 20. The computer-programproduct of claim 11, wherein the form is associated with financialsoftware; and wherein the financial software has predefined entries forfields other than the user-defined field and the additional fields. 21.A computer system, comprising: a processor; memory; and a programmodule, wherein the program module is stored in the memory andconfigurable to be executed by the processor, the program moduleincluding: instructions for receiving information associated with auser-defined field, wherein the information associated with theuser-defined field includes a data type or semantic information for anentry associated with the user-defined field, wherein the informationcorresponds to metadata associated with the user-defined field;instructions for dynamically generating a writing instrument format of aform which includes the user-defined field and additional fields basedon the information associated with the user-defined field and theadditional fields, wherein the form includes a spatial reference patterncomprising metadata associated with at least a user of a writinginstrument, wherein when the form is printed on paper, the spatialreference pattern facilitates data input by the user using a writinginstrument; instructions for providing the form to the user;instructions for receiving relative-location information for the writinginstrument with respect to the spatial reference pattern and fieldinformation; instructions for extracting writing information from therelative-location information; and instructions for determining an entryfor at least one of the user-defined field and the additional fieldsbased on the metadata associated with the user-defined field and theadditional fields, thereby eliminating the need to construct andmaintain at least a relationship between the writing instrument formatof the form and the data input by the user using the writing instrument.